'use strict';
const crypto = require('crypto');
module.exports = app => {
    const { STRING, INTEGER, DATE, ENUM, TEXT } = app.Sequelize;
    // 配置（重要：一定要配置详细，一定要！！！）
    const Topic = app.model.define('topic', {
        id: {
            type: INTEGER(20).UNSIGNED,
            primaryKey: true,
            autoIncrement: true
        },
        appraisal_id: {
            type: INTEGER(20).UNSIGNED,
            allowNull: false,
            comment: '题目id',
            //  定义外键（重要）
            references: {
                model: 'appraisal', // 对应表名称（数据表名称）
                key: 'id' // 对应表的主键
            },
            onUpdate: 'restrict', // 更新时操作
            onDelete: 'cascade' // 删除时操作
        },
        topicname: {
            type: STRING(150),
            allowNull: false,
            defaultValue: '',
            comment: '题目名称',
        },
        topicoption: {
            type: STRING(500),
            allowNull: false,
            defaultValue: '',
            comment: '题目选项',
        },
        order: {
            type: INTEGER(20),
            allowNull: false,
            defaultValue: 0,
            comment: '题目顺序',
        },
        score: {
            type: INTEGER(10),
            allowNull: false,
            defaultValue: 0,
            comment: '分数',
        },
        created_at: DATE,
        updated_at: DATE
    });
    // Topic.associate = function(models) {
    //         Topic.belongsTo(app.model.Appraisal, { foreignKey: 'appraisal_id' });
    //     }
    // // 定义关联关系
    // User.associate = function (model) {
    //     User.hasMany(app.model.Friend, {
    //         as: "bfriends", // 当前用户的被好友
    //         foreignKey: 'friend_id'
    //     });

    //     User.hasMany(app.model.Friend, {
    //         as: "friends", // 当前用户的好友
    //         foreignKey: 'user_id'
    //     });

    //     User.hasMany(app.model.Moment, {
    //         foreignKey: 'user_id'
    //     });
    // }


    return Topic;
};